package com.whc.gulimall.order.vo;

import lombok.AccessLevel;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * @author angaoen
 */
@Data
public class ProductVo implements Serializable {

    /**
     * skuId
     */
    private Long skuId;

    /**
     * 是否被选择
     */
    private Boolean checked = true;

    /**
     * 标题
     */
    private String title;

    /**
     * 图片
     */
    private String image;

    /**
     * 属性
     */
    private List<String> skuAttr;

    /**
     * 商品价格
     */
    private BigDecimal price;

    /**
     * 商品数
     */
    private Integer count;

    /**
     * 是否有库存
     */
    @Getter(AccessLevel.NONE)
    @Setter(AccessLevel.NONE)
    private Boolean hasStock = false;

    /**
     * 重量
     */
    private BigDecimal weight;

    /**
     * 总价
     */
    @Getter(AccessLevel.NONE)
    @Setter(AccessLevel.NONE)
    private BigDecimal totalPrice;

    /**
     * 计算总价
     *
     * @return 总价
     */
    public BigDecimal getTotalPrice() {
        return this.price.multiply(new BigDecimal("" + this.count));
    }

    /**
     * 是否有库存
     *
     * @return 是否有库存
     */
    public Boolean getHasStock() {
        return this.count > 0;
    }
}
